home *** CD-ROM | disk | FTP | other *** search
/ Sprite 1984 - 1993 / Sprite 1984 - 1993.iso / src / boot / netBoot / h / montrap.h < prev    next >
Encoding:
C/C++ Source or Header  |  1988-05-13  |  2.1 KB  |  74 lines

  1.  
  2. /*    @(#)montrap.h 1.1 86/09/27 SMI    */
  3.  
  4. /*
  5.  * Copyright (c) 1986 by Sun Microsystems, Inc.
  6.  */
  7.  
  8. /*
  9.  * Header file for traps caught by the Sun ROM Monitor
  10.  * 
  11.  * The following little structure is built on the stack to describe
  12.  * the state of the processor at the time of the trap.
  13.  */
  14.  
  15. struct monintstack {
  16.     long    mis_d0, mis_d1, mis_d2, mis_d3, mis_d4, mis_d5, mis_d6, mis_d7;
  17.     long    mis_a0, mis_a1, mis_a2, mis_a3, mis_a4, mis_a5, mis_a6, mis_a7;
  18.     long    mis_msp;
  19.     long    mis_usp;
  20.     long    mis_sfc, mis_dfc, mis_vbase;
  21.     long    mis_caar, mis_cacr;
  22.     long    mis_context;
  23.     short    mis_highsr;    /* Filler to make sr look like a longword */
  24.     short    mis_sr;
  25.     long    mis_pc;
  26.     enum fvo_format mis_format:4;    /* Stack format nibble */
  27.     unsigned mis_vector       :12;    /* Vector offset of this trap */
  28.     long    mis_instr_addr;    /* Instruc addr on 6-word traps */
  29. };
  30.  
  31. /*
  32.  * If you call your argument "monintstack" then these defines make it
  33.  * much easier to reference the stuff.
  34.  *
  35.  * eg:
  36.  *
  37.  * traphandler(monintstack)
  38.  * struct monintstack monintstack;
  39.  * { ... }
  40.  */
  41. #define    r_d0    monintstack.mis_d0
  42. #define    r_d1    monintstack.mis_d1
  43. #define    r_d2    monintstack.mis_d2
  44. #define    r_d3    monintstack.mis_d3
  45. #define    r_d4    monintstack.mis_d4
  46. #define    r_d5    monintstack.mis_d5
  47. #define    r_d6    monintstack.mis_d6
  48. #define    r_d7    monintstack.mis_d7
  49. #define    r_a0    monintstack.mis_a0
  50. #define    r_a1    monintstack.mis_a1
  51. #define    r_a2    monintstack.mis_a2
  52. #define    r_a3    monintstack.mis_a3
  53. #define    r_a4    monintstack.mis_a4
  54. #define    r_a5    monintstack.mis_a5
  55. #define    r_a6    monintstack.mis_a6
  56. #define    r_a7    monintstack.mis_a7
  57. #define    r_isp    monintstack.mis_a7
  58. #define    r_msp    monintstack.mis_msp
  59. #define    r_usp    monintstack.mis_usp
  60. #define    r_sfc    monintstack.mis_sfc
  61. #define    r_dfc    monintstack.mis_dfc
  62. #define    r_vbase    monintstack.mis_vbase
  63. #define    r_cacr    monintstack.mis_cacr
  64. #define    r_caar    monintstack.mis_caar
  65. #define    r_context    monintstack.mis_context
  66. #define    r_scon    monintstack.mis_scon
  67. #define    r_ucon    monintstack.mis_ucon
  68. #define    r_highsr    monintstack.mis_highsr
  69. #define    r_sr    monintstack.mis_sr
  70. #define    r_pc    monintstack.mis_pc
  71. #define    r_format    monintstack.mis_format
  72. #define    r_vector    monintstack.mis_vector
  73. #define    r_instr_addr    monintstack.mis_instr_addr
  74.